#ifndef CNC_BASE_GLOBAL_DATA_H
#define CNC_BASE_GLOBAL_DATA_H

#include "datatypeid.h"
#include "register.h"
#include "observer.h"
#include <bcm/bcm.h>

namespace cnc {

	namespace base {

		struct GlobalData : bcm::Interface
		{
			virtual bool addRegister(const char *registerID, DataTypeID dataType) = 0;
			virtual Register *getRegister(const char *registerID) = 0;
			virtual bool removeRegister(const char *registerID) = 0;
			virtual bool addObserver(const char *registerID, Observer *observer) = 0;
			virtual bool removeObserver(const char *registerID, Observer *observer) = 0;
		};

	} // namespace base

} // namespace cnc

#endif

